package com.bookrecomm.service;

import com.bookrecomm.vo.SalesRankingVO;
import com.bookrecomm.vo.RatingDistributionVO;
import com.bookrecomm.vo.HotKeywordVO;
import com.bookrecomm.vo.MarketTrendVO;

import java.util.List;

/**
 * 数据分析服务接口
 * 提供图书销量、评分、关键词和市场趋势的数据分析功能
 */
public interface DataAnalysisService {
    
    /**
     * 获取销量排行数据
     * @param categoryId 分类ID，如果为null则查询所有分类
     * @param timeRange 时间范围（day, week, month, year）
     * @param limit 限制返回记录数，默认为10
     * @return 销量排行数据列表
     */
    List<SalesRankingVO> getSalesRanking(Long categoryId, String timeRange, Integer limit);
    
    /**
     * 获取评分分布数据
     * @param categoryId 分类ID，如果为null则查询所有分类
     * @param timeRange 时间范围（day, week, month, year）
     * @return 评分分布数据
     */
    RatingDistributionVO getRatingDistribution(Long categoryId, String timeRange);
    
    /**
     * 获取热门关键词
     * @param categoryId 分类ID，如果为null则查询所有分类
     * @param timeRange 时间范围（day, week, month, year）
     * @param limit 限制返回记录数，默认为20
     * @return 热门关键词列表
     */
    List<HotKeywordVO> getHotKeywords(Long categoryId, String timeRange, Integer limit);
    
    /**
     * 获取市场趋势数据
     * @param categoryId 分类ID，如果为null则查询所有分类
     * @param timeRange 时间范围（day, week, month, year）
     * @return 市场趋势数据列表
     */
    List<MarketTrendVO> getMarketTrend(Long categoryId, String timeRange);
}
